package com.jiayang.hhotel.net;

import com.jiayang.hhotel.bean.AuditListModel;
import com.jiayang.hhotel.bean.CanRentRoomModel;
import com.jiayang.hhotel.bean.CheckOutMethodModel;
import com.jiayang.hhotel.bean.CheckOutModel;
import com.jiayang.hhotel.bean.CleanModel;
import com.jiayang.hhotel.bean.FinanceHandleModel;
import com.jiayang.hhotel.bean.InfoModel;
import com.jiayang.hhotel.bean.LineRoomModel;
import com.jiayang.hhotel.bean.NightAuditModel;
import com.jiayang.hhotel.bean.NowLiveDetailsModel;
import com.jiayang.hhotel.bean.NowLiveSearchModel;
import com.jiayang.hhotel.bean.PrePayModel;
import com.jiayang.hhotel.bean.ReservationSearchDetailsModel;
import com.jiayang.hhotel.bean.ReservationSearchModel;
import com.jiayang.hhotel.bean.RoomNumModel;
import com.jiayang.hhotel.bean.RoomThingModel;
import com.jiayang.hhotel.bean.RoundsModel;
import com.jiayang.hhotel.bean.SpecialRoomStateModel;

import io.reactivex.Flowable;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;

/**
 * Created by Administrator on 2017/5/19 0019.
 * 首页按钮接口
 */

public interface HomeService {

    //可租房
    @FormUrlEncoded
    @POST("/appserver/porttwo/pforcastroom/select")
    Flowable<CanRentRoomModel> canRentRoom(@Field("mpAcct") long mpAcct //手机用户账号,新建时候-1
            , @Field("mpLanguage") int mpLanguage //--0 中文、 1 英文
            , @Field("mpType") int mpType //类型：1   必须为1
            , @Field("mpSdate") String mpSdate //开始日期
            , @Field("mpEdate") String mpEdate//结束日期
            , @Field("page") Integer page);//请求页数

    //夜审
    @FormUrlEncoded
    @POST("/appserver/porttwo/pnaustepslist/select")
    Flowable<NightAuditModel> getNightAuditList(@Field("mpAcct") long mpAcct //手机用户账号,新建时候-1
            , @Field("mpLanguage") int mpLanguage); //--0 中文、 1 英文

    //开始夜审
    @FormUrlEncoded
    @POST("/appserver/porttwo/pnaustepslist/flexo")
    Flowable<InfoModel> startNightAudit(@Field("mpAcct") long mpAcct //手机用户账号,新建时候-1
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpStepsname") String mpStepsname);//请求码

    //现住列表查询
    @FormUrlEncoded
    @POST("/appserver/porttwo/preceptionlist/select")
    Flowable<NowLiveSearchModel> getNowLiveList(@Field("mpAcct") long mpAcct //手机用户账号,新建时候-1
            ,@Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            ,@Field("mpOperation") int mpOperation//状态：0-当前；1-历史
            ,@Field("mpIsmanager") int mpIsmanager//状态：0-游客；1-商家
            ,@Field("mpOccdate_b") String mpOccdate_b//开始日期
            ,@Field("mpOccdate_e") String mpOccdate_e//结束日期
            ,@Field("mpStatus") int mpStatus//--：0-取消、1-预订、2-现住、3-离店、4-失约
            ,@Field("mpGsttype") int mpGsttype//--：0-全部、1-散、2-团会、3-旅行社、4-长包房
//            ,@Field("mpReserveType") int mpReserveType//--：0-全部、1-保证、2-一般
            ,@Field("mpPickup") int mpPickup//--接送：0-全部、1-到离店接送
            ,@Field("mpIsvip") int mpIsvip//--VIP：0-全部、1-是
            ,@Field("mpIsed") int mpIsed//--明日离店：0-全部、1-是
            ,@Field("mpIsSecret") int mpIsSecret//--保密：0-全部、1-是
            ,@Field("mpIsmem") int mpIsmem//--会员：0-全部、1-是
            ,@Field("mpGstname") String mpGstname//客人名字
            ,@Field("mpRoom") String mpRoom//房号
            ,@Field("mpIsforeign") int mpIsforeign//--：0-全部、1-外宾、2-内宾
            ,@Field("mpIsbirthday") int mpIsbirthday//--店内生日：0-全部、1-是
            ,@Field("mpIshis") int mpIshis//--历史客人：0-全部、1-是
            ,@Field("mpIsfree") int mpIsfree//--免费：0-全部、1-是
            ,@Field("mpIsupgrade") int mpIsupgrade//--升级：0-全部、1-是
            ,@Field("mpIsdaily") int mpIsdaily//--一日租：0-全部、1-是
            ,@Field("mpRenttype") int mpRenttype//--出租方式：0-全部、1-钟点、2-床租、3-拼房
            ,@Field("mpIsover") int mpIsover//--即将超限额：0-全部、1-是
            ,@Field("mpIswalkin") int mpIswalkin//--上门：0-全部、1-是
            ,@Field("mpRmType") String mpRmType//房间类型
            ,@Field("page") int page);//页数

    //现住详情查询
    @FormUrlEncoded
    @POST("/appserver/porttwo/preception1list/select")
    Flowable<NowLiveDetailsModel> getNowLiveDetails(@Field("mpAcct") long mpAcct //手机用户账号,新建时候-1
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpRegister") long mpRegister);//序号
//            , @Field("page") int page//列表请求页数   请求的次数
//            , @Field("item") int item);//列表请求条数   例：10 代表请求下面10条数据

    //住店客人信息保存
    @FormUrlEncoded
    @POST("/appserver/porttwo/pgstprofile2save/flexo")
    Flowable<InfoModel> hotelGuestInfoSave(@Field("mpAcct") long mpAcct //手机用户账号,新建时候-1
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpOperation") int mpOperation//状态0-当前；1-历史
            , @Field("mpClerkAcct") long mpClerkAcct//编辑人帐号
            , @Field("mpForeignType") String mpForeignType//外国人类型（1-外国人；2-台湾同胞；3-港澳同胞；4-华侨）
            , @Field("mpKeepSecret") int mpKeepSecret//保密
            , @Field("mpVIP") String mpVIP//VIP
            , @Field("mpMemoryDate") String mpMemoryDate//重要
            , @Field("mpLangCode") String mpLangCode//语言
            , @Field("mpFancy") String mpFancy//爱好
            , @Field("mpTaboo") String mpTaboo//禁忌
            , @Field("mpIllness") String mpIllness//疾病
            , @Field("mpLivingHabit") String mpLivingHabit//睡眠习惯
            , @Field("mpDieteticHabit") String mpDieteticHabit//饮食习惯
            , @Field("mpRoomService") String mpRoomService//客房服务要求
            , @Field("mpSpecial") String mpSpecial);//特殊要求

    //现住详情改期
    @FormUrlEncoded
    @POST("/appserver/porttwo/preceptionchgdate/flexo")
    Flowable<InfoModel> correctionDate(@Field("mpAcct") long mpAcct //手机用户账号,新建时候-1
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpRegister") long mpRegister//序号
            , @Field("mpDptDate") String mpDptDate);//修改后日期

    //现住详情住店客人换房按钮
    @FormUrlEncoded
    @POST("/appserver/porttwo/preceptionchgroom/flexo")
    Flowable<InfoModel> HuanFangSave(@Field("mpAcct") long mpAcct //手机用户账号,新建时候-1
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpRegister") long mpRegister//序号
            , @Field("mpRoom") String mpRoom);//房号（前端提供）

    //现住详情连房
    @FormUrlEncoded
    @POST("/appserver/porttwo/preceptionlianfang/flexo")
    Flowable<LineRoomModel> LineHouse(@Field("mpAcct") long mpAcct //手机用户账号,新建时候-1
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpOperation") int mpOperation//mpIsmanager	Integer=0	是	-0-游客、1-商家
            , @Field("mpRegister") long mpRegister//序号
            , @Field("mpRoom") String mpRoom//与本人关联的现住房号
            , @Field("mpType") int mpType);//--0-不转账、1-公付账转本房、2-自付账转本房

    //现住详情预付列表
    @FormUrlEncoded
    @POST("/appserver/porttwo/pdepositarinform/select")
    Flowable<PrePayModel> getPrePayList(@Field("mpAcct") long mpAcct //手机用户账号,新建时候-1
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpOperation") int mpOperation//mpIsmanager	Integer=0	是	-0-游客、1-商家
            , @Field("mpGstAcct") long mpGstAcct//客人帐号580095
            , @Field("mpCronum") long mpCronum//订单号
            , @Field("mpRegister") String mpRegister//房间号
            , @Field("mpType") long mpType);//1-预订保证金、2-现住预付、3-取消预订、4-失约、5-提前离店

    //订房列表查询
    @FormUrlEncoded
    @POST("/appserver/porttwo/prsvbillroomlist/select")
    Flowable<ReservationSearchModel> reservationSearchList(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpOperation") int mpOperation//状态：0-当前
            , @Field("mpIsmanager") int mpIsmanager//商家-1固定
            , @Field("mpArrdateB") String mpArrdateB//起始日期
            , @Field("mpArrdateE") String mpArrdateE//终止日期
            , @Field("mpStatus") int mpStatus//-0-全部、1-预订、2-取消、3-失约 4-住店
            , @Field("mpGsttype") int mpGsttype//-0-全部、1-散、2-团会、3-旅行社
            , @Field("mpReservetype") int mpReservetype//-0-全部、1-保证、2-一般
            , @Field("mpPickup") int mpPickup//-0-全部、1-到离店接送
            , @Field("mpIsvip") int mpIsvip//-0-全部、1-是
            , @Field("mpGstname") String mpGstname//客人姓名
            , @Field("page") int page);//页数

    //订房查询详情
    @FormUrlEncoded
    @POST("/appserver/porttwo/prsvbillroomdetaillist/select")
    Flowable<ReservationSearchDetailsModel> reservationSearchDetails(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpIsmanager") int mpIsmanager//商家-1固定
            , @Field("mpCronum") long mpCronum);//订单号

    //订房查询详情房号列表
    @FormUrlEncoded
    @POST("/appserver/porttwo/prsvforcastroom/select")
    Flowable<RoomNumModel> getRoomNumList(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpIsmanager") int mpIsmanager//商家-1固定
            , @Field("mpArrDate") String mpArrDate//到店日期
            , @Field("mpDptDate") String mpDptDate//离店日期
            , @Field("mpRmUseType") int mpRmUseType//--房间使用形式（1-房租；2-钟点；3-床租；4-月租）
            , @Field("mpRmType") String mpRmType);//房间等级

    //分房确认按钮
    @FormUrlEncoded
    @POST("/appserver/porttwo/prsvbillroomnosave/flexo")
    Flowable<InfoModel> deterMineRoomNum(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpIsmanager") int mpIsmanager//商家-1固定
            , @Field("mpSerial") long mpSerial//序号由上个界面提供
            , @Field("mpCRONum") long mpCRONum//订单号
            , @Field("mpRoom") String mpRoom);//选择的房号

    //折扣按钮
    @FormUrlEncoded
    @POST("/appserver/porttwo/prsvbillroomdiscountsave/flexo")
    Flowable<InfoModel> disCountBt(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpCRONum") long mpCRONum//订单号
            , @Field("mpRoom") String mpRoom//房号
            , @Field("mpGrade") long mpGrade);//1-经理级折扣2-总监级折扣3-总经理级折扣4-免费

    //查房(历史)列表
    @FormUrlEncoded
    @POST("/appserver/porttwo/pcheckroomlist/select")
    Flowable<RoundsModel> getRoundsList(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpOperation") int mpOperation//状态：0 -当前；1 历史   固定
            , @Field("mpIsmanager") int mpIsmanager//0-游客、1-商家
            , @Field("page") int page);//列表请求页数

    //清洁(历史)列表
    @FormUrlEncoded
    @POST("/appserver/porttwo/pcleanroomlist/select")
    Flowable<CleanModel> getCleanList(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpOperation") int mpOperation//状态：0 -当前；1 历史   固定
            , @Field("page") int page//列表请求页数
            , @Field("item") int item);//列表请求条数

    //查房界面按钮点击
    @FormUrlEncoded
    @POST("/appserver/porttwo/pcheckroomsave/flexo")
    Flowable<InfoModel> checkClick(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpOperation") int mpOperation//状态：0 -当前；1 历史   固定
            , @Field("mpSerial") int mpSerial//Item的id号（0-开始、1-完成、2-未归）
            , @Field("mpMark1") int mpMark1//是否使用物品（0-未使用，1-使用）
            , @Field("mpMark2") int mpMark2//是否使用酒水（0-未使用，1-使用）
            , @Field("mpMark3") int mpMark3//是否使用洗衣（0-未使用，1-使用）
            , @Field("mpMark4") int mpMark4//预留
            , @Field("mpMark5") int mpMark5);//预留
    //清洁界面按钮点击
    @FormUrlEncoded
    @POST("/appserver/porttwo/pcleanroomsave/flexo")
    Flowable<InfoModel> cleanClick(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpOperation") int mpOperation//状态：0 -当前；1 历史   固定
            , @Field("mpSerial") int mpSerial//Item的id号（0-开始、1-完成、2-未归）
            , @Field("mpMark1") int mpMark1//是否使用物品（0-未使用，1-使用）
            , @Field("mpMark2") int mpMark2//是否使用酒水（0-未使用，1-使用）
            , @Field("mpMark3") int mpMark3//是否使用洗衣（0-未使用，1-使用）
            , @Field("mpMark4") int mpMark4//预留
            , @Field("mpMark5") int mpMark5);//预留

    //客房物品列表
    @FormUrlEncoded
    @POST("/appserver/porttwo/phktranslist/select")
    Flowable<RoomThingModel> guestThingList(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpRoom") String mpRoom//房号
            , @Field("mpType") int mpType);//1-酒水；2-洗衣；3-物品；4-其他（这里固定为3）

    //客房物品数据发送
    @FormUrlEncoded
    @POST("/appserver/porttwo/phktranssave/flexo")
    Flowable<InfoModel> guestThingSave(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpIsmanager") int mpIsmanager//-0-游客(客人损失)、1-商家（客房收费）
            , @Field("mpRoom") String mpRoom//房号
            , @Field("mpHKTrans") String mpHKTrans//HKMenu，Quantity2（消费代码,遗损量,消费代码,遗损量....）
            , @Field("mpType") int mpType);//1-酒水；2-洗衣；3-物品；4-其他（这里固定为3）

    //账务处理列表
    @FormUrlEncoded
    @POST("/appserver/porttwo/pcashierlist/select")
    Flowable<FinanceHandleModel> financeHandleList(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpIsManager") int mpIsManager);//--0 游客、 1 商家

    //账务处理退房查账(个人查房  团队查房 两个按钮)
    @FormUrlEncoded
    @POST("/appserver/porttwo/pcashiercheck/flexo")
    Flowable<InfoModel> perOrTeamCheckOut(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpCheck") int mpCheck//mpCheck	Integer		0-个人   1-团队
            , @Field("mpRoom") String mpRoom);//房号

    //结账
    @FormUrlEncoded
    @POST("/appserver/porttwo/ptransdetaillist/select")
    Flowable<CheckOutModel> checkOut(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpOperation") int mpOperation//--0当前、1-历史
            , @Field("mpGstacct") long mpGstacct//客户账号（个人 团队都用这个）
            , @Field("mpType") int mpType);//--1-我的明细、2-我的小计、3-团员小计、4-团会公账明细、5-团会公账合计

    //结账方式列表
    @FormUrlEncoded
    @POST("/appserver/porttwo/pcashierpaylist/select")
    Flowable<CheckOutMethodModel> checkOutMethod(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpType") int mpType//1-酒店结账、2-客人结账、3-酒店预付、4-客人预付、5-传账
            , @Field("mpRegister") long mpRegister//结账付款金额<0时使用
            , @Field("mpGstAcct") long mpGstAcct//结账付款金额<0时使用
            , @Field("mpMark") int mpMark//结账付款金额<0时使用：0-自付结账、1-公付结账
            , @Field("mpAmount") double mpAmount);//金额

    //保存结账方式
    @FormUrlEncoded
    @POST("/appserver/porttwo/pcashierpay/flexo")
    Flowable<InfoModel> saveCheckOutMethod(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpType") int mpType//1自付账单 2公付账单
            , @Field("mpGstacct") long mpGstacct//客户账户
            , @Field("mpTrncode") int mpTrncode//结账方式代码
            , @Field("mpAmount") double mpAmount//金额
            , @Field("mpSerial") String mpSerial);//选择的账项代码拼接成字符串

    //查帐
    @FormUrlEncoded
    @POST("/appserver/porttwo/ptransdetaillist/select")
    Flowable<AuditListModel> audit(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpOperation") int mpOperation//--0当前、1-历史
            , @Field("mpGstacct") long mpGstacct//客户账号（个人 团队都用这个）
            , @Field("mpType") int mpType);//--1-我的明细、2-我的小计、3-团员小计、4-团会公账明细、5-团会公账合计

    //冲销帐，转账
    @FormUrlEncoded
    @POST("/appserver/porttwo/pcashierpost/flexo")
    Flowable<InfoModel> chongxiaozhang(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpGstacct") long mpGstacct//客户账户
            , @Field("mpTrncode") int mpTrncode//账项
            , @Field("mpAmount") double mpAmount//金额
            , @Field("mpComment") String mpComment);//备注

    //获取特殊房态,历史列表
    @FormUrlEncoded
    @POST("/appserver/porttwo/passignroomlist/select")
    Flowable<SpecialRoomStateModel> getSpecialRoomList(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpOperation") int mpOperation//状态类别：0  固定
            , @Field("mpSerial") int mpSerial//查看类型  -1 查看所有
            , @Field("page") int page);//页数

    //特殊房态取消，结束
    @FormUrlEncoded
    @POST("/appserver/porttwo/passignroomsave/flexo")
    Flowable<InfoModel> CancelSpecialRoom(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpOperation") int mpOperation//状态类别：1-新建；3-取消； 5-释放
            , @Field("mpSerial") int mpSerial);//序号 item的id

    //新增特殊房态保存
    @FormUrlEncoded
    @POST("/appserver/porttwo/passignroomsave/flexo")
    Flowable<InfoModel> SpecialRoomSave(@Field("mpAcct") long mpAcct //手机用户账号
            , @Field("mpLanguage") int mpLanguage//--0 中文、 1 英文
            , @Field("mpOperation") int mpOperation//状态类别：1-新建
            , @Field("mpSerial") int mpSerial//新增为-1
            , @Field("mpRoom") String mpRoom//房号
            , @Field("mpRoomReason") String mpRoomReason//原因类型编码
            , @Field("mpBeginDate") String mpBeginDate//开始日期 格式：2017-05-18
            , @Field("mpBeginTime") String mpBeginTime//开始时间 格式：08:02:02
            , @Field("mpEndDate") String mpEndDate//结束日期 格式：2017-05-18
            , @Field("mpEndTime") String mpEndTime);//结束时间 格式：08:02:02
}
